package com.lancoo.ccas53.mapper;
import com.lancoo.ccas53.arrangecourse.entities.CourseUnit;
import com.lancoo.ccas53.entity.RuleTimeProhibit;
import com.lancoo.ccas53.entity.ScheduleConflictInfo;
import com.lancoo.ccas53.pojo.dto.RoomDto;
import com.lancoo.ccas53.pojo.vo.TeachingClassWithRuleVo;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;

import com.lancoo.ccas53.entity.TeachingClassWeek;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lancoo.ccas53.config.MybatisRedisCache;
import org.apache.ibatis.annotations.CacheNamespace;

/**
 * <p>
 * 教学班对应上课周数 Mapper 接口
 * </p>
 *
 * @author quin.song
 * @since 2024-05-31
 */
@CacheNamespace(implementation = MybatisRedisCache.class, eviction = MybatisRedisCache.class)
public interface TeachingClassWeekMapper extends BaseMapper<TeachingClassWeek> {

    int addBatch(@Param("teachingClassWeekCollection") Collection<TeachingClassWeek> teachingClassWeekCollection);

    void updateRuleSet(Integer taskId, List<TeachingClassWithRuleVo> teachingClass, int code);

    void updateScheduleStateByType(int code, List<ScheduleConflictInfo> list);

    void updateScheduleStateByCourseUnit(int code, List<CourseUnit> list);

    List<TeachingClassWeek> getUnNormal(Integer taskId);

    void setAllNoRule(Integer taskId);

    void ruleSetSuit(List<RuleTimeProhibit> list);

    void updateByType(Integer typeId);

    List<RoomDto> selectRoom();

    void updateRoom(List<RoomDto> roomDtos);

    void updateForRoom(Long id);
}
